In today's world, modems are commonly used to connect a computer at one location to a computer at another remote location. A majority of computer users use a modem to establish a data connection directly to another computer, or to a computer which allows access to a network of computers (e.g., the Internet). The modem connection is typically made over a telephone line (e.g., a plain old telephone service (POTS) line) that is normally used for voice calls. The user modem data connection to another computer is typically a data connection that does not permit voice traffic. If a user wants to talk with anyone, the data connection must be dropped, and a voice connection established. When the voice conversation is finished, the voice connection is dropped, and the data connection must then be reestablished, a tedious and time consuming process.
It is desirable for many types of applications to allow a voice connection to co-exist on the same telephone line that is being used as a data connection between two modems. This voice connection can be used for a number of purposes, such as permitting a user to get live help from a support organization after calling a support bulletin board, to order merchandise after viewing an electronic catalog, to play an interactive game with another computer user, etc. Since voice transmission can generate large bursts of voice information, compression/decompression techniques are typically required to speed the transmission of voice information. However, most packet networks with modem connections are simply not capable of transmitting effective voice communications in real-time (even with compression/decompression) over a data connection that has been established between two computers due to high latency (i.e., time delays of 200-500 milliseconds) and limited bandwidth.
It is also desirable for an application (e.g., a computer game, an electronic music store, etc.) to transmit high fidelity audio along with data. As the transmission speed of modems increases (e.g., from 9600 and 14,400 (14.4) to 28,800 (28.8) bits-per-second), it is now possible to routinely add high fidelity audio to applications. A voice channel (or audio channel) could be used to transmit this high fidelity audio associated with the application. High fidelity audio data also requires compression/decompression techniques be used since the amount of high fidelity audio data sent can be quite large. However, as was described above for voice, real-time latency and bandwidth problems prevent most packet networks with modem connections from transmitting high fidelity audio over a data connection.
There have been many attempts to permit voice/data and/or high fidelity audio/data to be transmitted on the same telephone line used to make a modem connection. One example of voice/data transmission is the Voice View.TM. modem by Radish-Communications Systems, Inc. of Boulder, Colo., which uses software to permit alternating voice and data (AVD). At any one time, voice or data can be transmitted over the connection between the two modems. However, voice communications are awkward for users since the voice channel stops when data is sent. An additional problem is that both ends of the connection must have the special Voice View.TM. Modems. If Voice View.TM. Modems aren't present on both ends, then the alternating voice and data connection is not possible.
Another technique used to overcome the voice/data problem is using simultaneous voice and data (SVD) modems developed by the Intel.RTM., Rockwell.RTM., Multitech.RTM., and others. The SVD modems use special modem hardware to provide simultaneous voice and data over a telephone line at any instant of time. The simultaneous voice and data modems allow a single channel of voice (or audio) to co-exist with a data stream. However, multiple channels of voice are not supported. Moreover, this solution requires significant computational abilities in the modem hardware to compress/decompress, multiplex/demultiplex the voice data stream, as well as a protocol for mixing the data and voice/audio streams. The special modem hardware significantly increases the cost of the modem, and uses proprietary compression and protocol schemes which are incompatible with most other existing modem hardware. As a result, both ends of the connection must have the specially-equipped modems to permit simultaneous voice/audio and data traffic over a single telephone line. In addition, not all SVD modems are compatible with other SVD modems (e.g., a Multitech.RTM. SVD modem will not communicate with an Intel.RTM. SVD modem).
Another variety of the simultaneous voice and data "modems" is an Integrated Services Digital Network (ISDN) device. ISDN devices provide simultaneous voice and data transmission, but are significantly more expensive than a standard modem. In addition, ISDN devices typically require a special telephone line (i.e., an ISDN line) to take full advantage of the ISDN modem features. To use simultaneous voice and data, a user needs an ISDN device, and an ISDN telephone line (which requires an additional monthly fee) instead of a normal telephone line.
Half-duplex voice has also been used to provide voice traffic over a data connection on a broadcast computer network such as the Internet. However, these half-duplex network products (e.g., such as the InternetPhone.TM.) do not allow an immediate transition between speaking and listening. This dramatically interrupts natural speech patterns. The variations in the time required to send data (including voice data) across a broadcast computer network such as the Internet (e.g., over 1 second), make it virtually impossible to overcome latency during a voice connection.
In accordance with a preferred embodiment of the present invention, the simultaneous voice/audio and data problem using standard modems is overcome. A new protocol, called the "voice-over-data protocol", provides simultaneous, full-duplex voice and data over a standard modem data connection, using a single telephone line. The voice-over-data protocol does not require any new, special, or proprietary modem hardware, and utilizes Sockets, a standard operating system communication component for the transport.
Voice-over-data uses a combined single protocol to handle both voice/audio and data. The voice-over-data protocol is designed to allow a variety of non-proprietary compression/decompression techniques to be used for simultaneous voice/audio and data transfer, and also provides the capability for multiple voice/audio channels to be transmitted over a single telephone line. This new protocol dramatically improves the latency between the speaker and the listener (i.e., the time delays are reduced to 50-100 milliseconds), allowing for more natural speech patterns.